package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 抖音授权设置对象 douyin_authorization
 *
 * @author ruoyi
 * @date 2025-05-14
 */
@Data
@ApiModel("抖音授权设置")
public class DouyinAuthorization extends AbdulBaseEntity {

    private static final long serialVersionUID = 1L;

    /** 授权记录唯一标识符 */
    @ApiModelProperty("授权记录唯一标识符")
    private Long id;

    /** 抖音账号名称（如"商家官方号"） */
    @Excel(name = "抖音账号名称")
    @ApiModelProperty("抖音账号名称")
    private String douyinAccount;

    /** 抖音账号唯一ID（由抖音平台分配） */
    @Excel(name = "抖音账号唯一ID", readConverterExp = "由=抖音平台分配")
    @ApiModelProperty("抖音账号唯一ID")
    private String douyinUid;

    /** 抖音门店名称（冗余字段，避免关联查询） */
    @Excel(name = "抖音门店名称", readConverterExp = "冗=余字段，避免关联查询")
    @ApiModelProperty("抖音门店名称")
    private String storeName;

    /** 授权状态（待授权/已授权/已过期/已撤销） */
    @Excel(name = "授权状态", readConverterExp = "待=授权/已授权/已过期/已撤销")
    @ApiModelProperty("授权状态")
    private String authorizationStatus;

    /** 抖音授权Token（用于API调用） */
    @Excel(name = "抖音授权Token", readConverterExp = "用=于API调用")
    @ApiModelProperty("抖音授权Token")
    private String authorizationToken;

    /** 刷新Token（用于Token续期） */
    @Excel(name = "刷新Token", readConverterExp = "用=于Token续期")
    @ApiModelProperty("刷新Token")
    private String refreshToken;

    /** Token过期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "Token过期时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("Token过期时间")
    private Date tokenExpiryTime;

    /** 最后一次同步数据的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后一次同步数据的时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("最后一次同步数据的时间")
    private Date lastSyncTime;

    /** 授权业务范围（如"门店管理"、"商品发布"） */
    @Excel(name = "授权业务范围")
    @ApiModelProperty("授权业务范围")
    private String businessScope;

    /** 操作人（如"系统自动"、"管理员张三"） */
    @Excel(name = "操作人")
    @ApiModelProperty("操作人")
    private String operator;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;
}